<?php


class Admin_model extends CI_Model
{
	public function __construct()
	{
		parent::__construct();

		$this->load->database();//加载数据库
		$this->load->library('session');
	}

	/**
	 * 用户登录认证
	 * @param string $username 用户名
	 * @param string $password 用户密码
	 * @param integer $type 用户名类型 （1-用户名，2-邮箱，3-手机，4-UID）
	 * @return integer 登录成功-用户ID，登录失败-错误编号
	 */
	public function login($username, $password, $type = 1)
	{
		$user = $this->info($username);
		if ($user && is_array($user)) {
			if (ucenter_encrypt_md5($password, $user['salt']) === $user['password']) {
				$returnData = [
					'ret' => '1',
					'username' => $user['username'],
					'id' => $user['id'],
					'last_login_time' => time()
				];
				// 自动登录用户
				$this->autoLogin($returnData);

				return $returnData; //登录成功，返回用户ID
			} else {
				exit("用户名或密码错误");
			}
		} else {
			exit("用户名或密码错误");
		}

	}

	/**
	 * 用户登录
	 * @param $username 用户名
	 * @param bool $passname 是否返回密码 默认不返回
	 * @param int $type （1-用户名，2-邮箱，3-手机，4-UID）
	 * @return int
	 */
	public function info($username, $password = false, $type = 1)
	{
		$map = array();
		switch ($type) {
			case 1:
				$map['username'] = $username;
				break;
			case 2:
				$map['email'] = $username;
				break;
			case 3:
				$map['mobile'] = $username;
				break;
			case 4:
				$map['id'] = $username;
				break;
			default:
				return 0; //参数错误
		}
		return $this->db->get_where('admin', $map)->row_array();
	}

	/**
	 * 自动登录用户
	 * @param integer $user 用户信息数组
	 */
	private function autoLogin($auth)
	{
		$_SESSION['user_auth'] = $auth;
		$_SESSION['user_auth_sign'] = data_auth_sign($auth);
	}
}
